package com.aoxin.service.inter.course.webCourse;

import java.util.List;


import com.aoxin.model.course.SlfMyCoursePage;
import com.aoxin.model.dto.ChildrenCoursePackageDto;

public interface MyCoursePageService {

	/**
	 * 新增我的课程包
	 * 
	 * @param courseId
	 * @return
	 */
	Integer insertMyCoursePage(Integer courseId, Integer syllabusId, Integer childrenId);

	/**
	 * 查询我的全部课程包|查询某个孩子的课程包
	 * 
	 * @param slfMyCoursePage
	 * @return
	 */
	List<SlfMyCoursePage> getMyCoursePage(SlfMyCoursePage slfMyCoursePage);

	/**
	 * 删除我的课程包
	 * 
	 * @param myCoursePageId
	 * @return
	 */
	Integer deleteMyCoursePage(Integer myCoursePageId);

	/**
	 * 批量删除我的课程包
	 * 
	 * @param myCoursePageIds
	 * @return
	 */
	Integer deleteMyCoursePages(List<Integer> myCoursePageIds);

	/**
	 * 修改我的课程包
	 * 
	 * @param slfMyCoursePage
	 * @return
	 */
	Integer updateMyCoursePage(SlfMyCoursePage slfMyCoursePage) throws IllegalAccessException;

	/**
	 * 查询我的孩子的课程包
	 * 
	 * @param childrenId
	 * @return
	 */
	List<SlfMyCoursePage> getMyChildrenCoursePage(Integer childrenId);

	/**
	 * 查询还有哪些课程包未分配班级
	 * 
	 * @param childrenId
	 *            孩子ID
	 * @param coursePackageId
	 *            课程包ID
	 * @return 课程包ID
	 */
	List<Integer> getCoursePageByUnallotted(Integer childrenId, Integer coursePackageId);

	/**
	 * 根据课程包ID查询未排课的孩子
	 * 
	 * @param childrenId
	 *            孩子ID
	 * @param coursePackageId
	 *            课程包ID
	 * @param coursePageId
	 *            未排课课程包ID
	 * @return 孩子ID集合
	 */
	List<Integer> getChildrenByCoursePage(Integer childrenId, Integer coursePackageId, Integer coursePageId);

	/**
	 * 查询孩子课程包
	 * 
	 * @return 孩子课程包
	 */
	List<ChildrenCoursePackageDto> getChildrenCoursePackage();
	/**
	 * 查询用户是否已购买上级课程包
	 * @param childrenId
	 * @param schoolCoursePageId
	 * @return
	 */
	boolean queryUserIsBuy (Integer childrenId,Integer schoolCoursePageId);
	/**
	 * 查询校包ID
	 * @param coursePageId
	 * @return
	 */
	Integer querySchoolCoursePageId( Integer coursePageId);
}
